import axios from 'axios'
import {
	getToken
} from '../util/authUtil.js'

// 创建axios实例
const httpInstance = axios.create({
	baseURL: 'http://localhost:8000/api',
	// baseURL: 'http://localhost:3300',
	timeout: 5000
})

httpInstance.interceptors.request.use(function(config) {
	// 在发送请求之前做些什么
	const token = getToken()
	if (token) {
		config.headers.Authorization = `Bearer ${token}`
	}

	return config;
}, function(error) {
	// 对请求错误做些什么
	return Promise.reject(error);
});

// 添加响应拦截器
httpInstance.interceptors.response.use(function(response) {
	// 2xx 范围内的状态码都会触发该函数。
	// 对响应数据做点什么
	return response;
}, function(error) {
	// 超出 2xx 范围的状态码都会触发该函数。
	// 对响应错误做点什么
	if (error.response && error.response.status === 401) {
		// 清除无效的 token
		uni.removeStorageSync('token')

		// 显示错误提示
		uni.showToast({
			title: '登录已过期，请重新登录',
			icon: 'none',
			duration: 2000
		})

		// 跳转到登录页面
		setTimeout(() => {
			uni.navigateTo({
				url: '/pages/login/login'
			})
		}, 1500)
	}

	return Promise.reject(error);
});

// 默认导出直接导出的是对象，不用解构
export default httpInstance